package com.wuyou.sso.common.contant;

import org.springframework.http.HttpHeaders;

/**
 * AuthContants
 *
 * @Date 2025/4/1 10:21
 * @Author 无忧
 */
public interface AuthConstants {

    public static final String LOGIN_URI = "/token/auth";
    public static final String FORM_LOGIN_URI = "/token/login";


    /**
     * token的过期时间，单位为秒，默认的token有效时间，默认为24小时
     */
    public final static int TOKEN_VALID_TIME_IN_SECOND = 60 * 60 * 24;

    /**
     * token信息分割符 :
     */
    public final static String TOKEN_SPLIT_CHAR = ":";

    /**
     * 默认的最大登陆用户数量
     */
    public final static int MAX_SESSION_NUM = 10;

    /**
     * token信息的长度
     */
    public final static int TOKEN_LENGTH = 3;


    /**
     * 从请求URL参数里取出认证信息时的参数名，默认为 xtoken
     */
    public final static String TOKEN_REQUEST_PARAM = "xtoken";
    /**
     * 从请求头参数里取出认证信息时的参数名，默认为 Authorization
     */
    public final static String TOKEN_HEADER_PARAM = HttpHeaders.AUTHORIZATION;
    public final static String BEARER_TYPE = "bearer";
    /**
     * 用户唯一标识符的标志,即设备id
     */
    public final static String USER_DEVICE_ID = "user_device_id";

    /**
     * 刷新令牌请求
     */
    String REFRESH_TOKEN = "refresh_token";

    /**
     * 验证码有效期
     */
    int CODE_TIME = 60;

    /**
     * 角色前缀
     */
    String ROLE = "ROLE_";

    /**
     * 前缀
     */
    String PROJECT_PREFIX = "weihuang_";

    /**
     * oauth 相关前缀
     */
    String OAUTH_PREFIX = "oauth:";

    /**
     * 项目的license
     */
    String PROJECT_LICENSE = "made by weihuang";

    /**
     * OAUTH URL
     */
    String OAUTH_TOKEN_URL = "/oauth/token";

    /**
     * 手机号登录URL
     */
    String SMS_TOKEN_URL = "/mobile/token/sms";

    /**
     * 社交登录URL
     */
    String SOCIAL_TOKEN_URL = "/mobile/token/social";

    /**
     * 自定义登录URL
     */
    String MOBILE_TOKEN_URL = "/mobile/token/*";

    /**
     * 注册用户URL
     */
    String REGISTER_ACCOUNT_URL = "/account/register";

    /**
     * oauth 客户端信息
     */
    String CLIENT_DETAILS_KEY = PROJECT_PREFIX + OAUTH_PREFIX + "client:details";

    /**
     * 微信获取OPENID
     */
    String WX_AUTHORIZATION_CODE_URL =
            "https://api.weixin.qq.com/sns/oauth2/access_token"
                    + "?appid=%s&secret=%s&code=%s&grant_type=authorization_code";

    /**
     * 资源服务器默认bean名称
     */
    String RESOURCE_SERVER_CONFIGURER = "resourceServerConfigurerAdapter";

    /**
     * 客户端模式
     */
    String CLIENT_CREDENTIALS = "client_credentials";

    /**
     * 租户信息
     */
    String TENANT_ID = "TENANT-ID";

    /**
     * 默认租户id
     */
    String DEFAULT_TENANT_ID = "1";

    /**
     * 自定义登录URL-IDass登录
     */
    String IDASS_TOKEN_URL = "/oauth/idass-token";

    /**
     * 自定义登录URL-openid登录
     */
    String OPENID_TOKEN_URL = "/oauth/openid-token";

    /**
     * 租户id的key，用于Rpc隐式传参的key
     */
    String TENANT_ID_KEY = "tenantId";

    /**
     * 部门id key 用于Rpc隐式传参的key
     */
    String DEPT_ID_KEY = "deptId";

    /**
     * 认证信息
     */
    String TOKEN = "authToken";

    /**
     * 本地线程变量里的tenantHolder
     */
    String TENANT_HOLDER = "tenantHolder";

    /**
     * 用户名
     */
    String USERNAME = "username";
}
